package com.apes.framework.plugin.filereader.xml;

import com.apes.framework.api.ApesParser;

import java.util.Collection;
import java.util.Map;

/**
 * 功能：节点元素
 *
 * @author xul
 * @create 2018-04-16 11:53
 */
public interface ApesElement {

    /*
     * 功能：设置组件名称
     */
    void setName(String name);

    String getName();


    /*
     * 功能：设置Text
     */
    void setText(String text);

    String getText();

    /*
     * 功能：设置父类节点
     */
    void setParent(ApesElement parent);

    ApesElement getParent();

    /*
     * 功能：设置节点属性
     */
    void setAttribute(String key, String value);

    /**
     * 功能：获取指定属性
     */
    String getAttribute(String key);

    /**
     * 功能：获取所有属性
     */
    Map<String, String> getAttributes();

    /*
     * 功能：设置子节点
     */
    void setNestedElement(ApesElement element);

    /**
     * 功能：获取所有子节点
     */
    Collection<ApesElement> getNestedElements();

    /*
     * 功能：设置节点解析器
     */
    void setParser(ApesParser parser);

    <T> T parse();

}
